
//计算函数，满1000进1

/**
 * 智能转换文件大小单位
 * @param {number} bytes - 文件大小（字节）
 * @param {number} [decimals=2] - 保留小数位数
 * @returns {string} 带单位的文件大小字符串
 */
function formatFileSize(bytes, decimals = 2) {
    if (bytes === 0) return '0 Bytes';

    const k = 1024;
    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];

    // 计算对数确定单位索引
    const i = Math.floor(Math.log(bytes) / Math.log(k));

    // 处理保留小数位数
    const dm = decimals < 0 ? 0 : decimals;

    // 返回格式化后的字符串
    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}

/**@description 列表表格字段 */
const getColumns = ({ open = Function, handleDelete = Function }) => {
    const columns = [
        {
            title: "上传日期",
            key: "createDate",
            dataIndex: "createDate",
            width: 150
        },
        {
            title: "文件名称",
            key: "fileName",
            dataIndex: "fileName",
            width: 300
        },
        {
            title: "文件URL",
            key: "fileUrl",
            dataIndex: "fileUrl",
            width: 300
        },

        {
            title: "文件类型",
            key: "fileType",
            dataIndex: "fileType",
            width: 80
        },
        {
            title: "文件大小",
            key: "size",
            dataIndex: "size",
            width: 120,
            render: text => text ? `${formatFileSize(text)}` : null
        },
        {
            title: "存储位置",
            key: "storeDir",
            dataIndex: "storeDir",
            width: 300
        },
        {
            title: "上传者",
            key: "uploader",
            dataIndex: "uploader",
            width: 120
        },
    ];
    return columns;
}

export default getColumns;